package com.vegetable.modules.service.wx;

import com.baomidou.mybatisplus.extension.service.IService;
import com.vegetable.modules.entity.wx.WxDepartment;
import com.vegetable.modules.entity.wx.SysUserDepartment;

import java.util.List;

/**
 * 企业微信部门服务接口
 *
 * @author Qoder
 */
public interface WxDepartmentService extends IService<WxDepartment> {

    /**
     * 保存部门信息
     * @param department 部门信息
     */
    void saveDepartment(WxDepartment department);

    /**
     * 批量保存部门信息
     * @param departments 部门信息列表
     */
    void saveDepartments(List<WxDepartment> departments);

    /**
     * 保存用户部门关联信息
     * @param userDepartment 用户部门关联信息
     */
    void saveUserDepartment(SysUserDepartment userDepartment);

    /**
     * 批量保存用户部门关联信息
     * @param userDepartments 用户部门关联信息列表
     */
    void saveUserDepartments(List<SysUserDepartment> userDepartments);

    /**
     * 根据系统用户ID获取用户所属部门
     * @param sysUserId 系统用户ID
     * @return 用户所属部门列表
     */
    List<WxDepartment> getSysUserDepartments(Long sysUserId);

    /**
     * 修改用户所属部门
     * 建立系统用户与部门的关联关系
     * @param sysUserId 系统用户ID
     * @param departmentIds 部门ID列表
     */
    void updateUserDepartments(Long sysUserId, List<Long> departmentIds);
}